package com.sgs.carbon.common.enums;

/**
 * Web过滤器顺序的枚举类, 保证过滤器执行顺序符合我们的预期,
 * 考虑到每个starter都需要用到该工具类, 所以放到common模块的util包下
 *
 * @author Dave Liu
 * @date 2021-09-29
 */
public interface WebFilterOrderEnum {

    int CORS_FILTER = Integer.MIN_VALUE;

    int TRACE_FILTER = CORS_FILTER + 1;

    int REQUEST_BODY_CACHE_FILTER = Integer.MIN_VALUE + 500;

    // OrderedRequestContextFilter 默认为 -105，用于国际化上下文等等

    /**
     * 需要保证在 RequestBodyCacheFilter 后面
     */
    int API_ACCESS_LOG_FILTER = -104;

    /**
     * 需要保证在 RequestBodyCacheFilter 后面
     */
    int XSS_FILTER = -103;

    // Spring Security Filter 默认为 -100，可见 SecurityProperties 配置属性类

    int DEMO_FILTER = Integer.MAX_VALUE;

}
